草庐IT

OutOfMemoryError 和 StackOverflowError

全部标签

java - 为什么 Scala Try 不捕获 java.lang.StackOverflowError?

我有一些函数可以(可能)产生StackOverflowError。当然,这是糟糕设计的标志,但现在我决定将其包装到Try中。Try{Calculator.eval(..)}我期望的结果是Failure(java.lang.StackOverflowError)。我得到的结果只是java.lang.StackOverflowError。我想问题是StackOverflowError不是异常,而是错误。如果是,是否有任何方法可以通过使用Try或其他一些monad来“捕获”这些类型的错误? 最佳答案 根据Scala文档。Note:only

java.lang.OutOfMemoryError : PermGen space: java reflection 错误

我在代码中使用java反射是这样的:Methodmethod=LogFactory.class.getDeclaredMethod("getContextClassLoader");method.setAccessible(true);ClassLoaderclassLoader=(ClassLoader)method.invoke(null);LogFactory.release(classLoader);我用jprofiler可以看到很多这样的类sun.reflect.GeneratedMethodAccessor11每次调用都会增加这些类sun.reflect.Bootstrap

java - StackOverflowError 由 TableModelListener 引起

我不确定为什么这是递归的。jTable1.getModel().addTableModelListener(newTableModelListener(){publicvoidtableChanged(TableModelEventevt){intsum=0;inti=0;for(i=0;i异常(exception)是:(它不断重复)Exceptioninthread"AWT-EventQueue-0"java.lang.StackOverflowErroratjavax.swing.table.DefaultTableColumnModel.getColumn(DefaultTabl

java - Apache POI 3.7 OutOfMemoryError : Java heap space when writing to large no of rows to xlsx files

我需要在xlsx文件中写入超过65000行的结果集。所以,我正在尝试使用ApachePOI3.7。我收到OutOfMemoryError:Java堆空间。除了增加JVM内存似乎无法解决问题外,我该如何解决此问题。简单示例代码:publicstaticvoidmain(String[]args)throwsIOException{Workbookwb=newXSSFWorkbook();CreationHelpercreateHelper=wb.getCreationHelper();Sheetsheet=wb.createSheet("newsheet");//Createarowan

java.lang.OutOfMemoryError : Java heap space while initialising an array 错误

我正在尝试初始化一个大小为10位整数的boolean类型数组。它不断抛出OutOfMemoryException。我已将eclipse的堆空间大小从256增加到1024。有什么我想做的吗?intsize=1000000000;boolean[]primesList=newboolean[size]; 最佳答案 使用java.util.BitSet,与使用boolean数组相比,它会将位打包在八分之一的空间中。boolean数组元素占用1个字节而不是1位的原因是因为(大多数)CPU架构不提供直接读取和写入内存的各个位的能力。PC可以操

java.lang.OutOfMemoryError : unable to create new native thread 错误

我看到了这样的评论oneplaceihaveseenthisproblemisifyoukeepcreatingthreads,andinsteadofcallingstart(),callrun()directlyonthethreadobject.Thiswillresultinthethreadobjectnotgettingdereferenced...Soaftersometimethemessageunabletocreatenewnativethreadcomesup关于SunJavaForums在我的应用程序中,最初我们计划使用线程,但后来我们决定不再需要,所以我们只调

java - 为什么我的构造函数中出现 StackOverflowError 异常

publicclassCloning{Cloningc=newCloning();publicstaticvoidmain(String[]args){Cloningc=newCloning();c.print();}publicvoidprint(){System.out.println("Iaminprint");}}在上面的代码中,我有一个简单的类和一个类级别的实例,我还有一个同名的本地实例。运行上面的代码时,出现以下异常:Exceptioninthread"main"java.lang.StackOverflowErroratcom.java8.Cloning.(Cloning

java - 这在 Java 中 - 线程 "main"java.lang.StackOverflowError 中的异常

为什么我会收到stackoverflow错误?我的类(class)-publicclassTester{intid;Tester(intid){this.id=id;}publicStringtoString(){Stringrep="Hex:"+this+",Id:"+this.id;returnrep;}}主要方法-classDriver{publicstaticvoidmain(String[]args){Testert=newTester(123);System.out.println(t);}}错误-Exceptioninthread"main"java.lang.Stack

java - 捕获 OutOfMemoryError 是个坏主意吗?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Catchingjava.lang.OutOfMemoryErrorOutOfMemoryError是:ThrownwhentheJavaVirtualMachinecannotallocateanobjectbecauseitisoutofmemory,andnomorememorycouldbemadeavailablebythegarbagecollectorJava说:AnErrorisasubclassofThrowablethatindicatesseriousproblemsthatareaso

java - 如何解释导致 OutOfMemoryError 的 G1 GC 日志?

我想知道是否有人能够向我解释如何解释导致OutOfMemoryError的一些G1GC日志?我知道堆转储是找出实际使用堆的最佳选择,但我无法获取它,因为它包含无法离开客户端站点的protected信息。我只有应用程序日志(包括来自OOME的堆栈)和G1GC日志。完整的G1GC日志包含很多细节,因此除非有人特别需要查看它们,否则我不会将它们放在这里。这些来自的特定Java版本是:>java-versionjavaversion"1.7.0_21"Java(TM)SERuntimeEnvironment(build1.7.0_21-b11)JavaHotSpot(TM)64-BitServ